Efficient navigation of autonomous carriers

ABSTRACT

According to the invention, autonomous carriers or vehicles are efficiently navigated over a field of operation. The carriers are equipped to execute a selected procedure at more than one desired location on the field, and the navigation system of the invention directs the carrier to the location that is preferentially accessible to it, based on a defined criterion. After the carrier has executed the selected procedure at the location which is preferentially accessible to it, the navigation system directs the carrier to the location which is preferentially accessible to the carrier from the carrier&#39;s new position. This procedure is repeated until all the locations at which the procedure is to be executed have been reached. The task of determining a navigation route to a location that can be preferentially accessed is based on an efficient, structured search procedure of low computational complexity.

TECHNICAL FIELD OF THE INVENTION

[0001] The present invention generally relates to autonomous apparatuses for surface treatment, and especially to the navigation of such apparatuses over a predetermined field of operation.

BACKGROUND OF THE INVENTION

[0002] Autonomous surface treatment apparatuses such as autonomous or robotic vacuum cleaners are well known in the prior art, for example as disclosed in the International Patent Applications WO 97/41451 (U.S. Pat. No. 5,935,179) and WO 00/38028, respectively. Such autonomous surface treatment apparatuses generally have a main body, being supported on or by a number of motor-riven wheels or rollers and means for surface treatment such as rotating brushes in combination with a vacuum cleaning device. Further, a sensing system, usually in combination with transmitters, is provided for guidance, navigation and obstacle detection. The sensing system generally sweeps around the horizon in analogy, for example, with ship radar. A microprocessor together with appropriate software controls the transmitters and motors of the device. Normally, the microprocessor also receives input data from the wheels and the sensing system for the purpose of position information and localization of wall limitations as well as potential obstacles. This input data is then typically used as the basis for navigating the autonomous apparatus so that it, for instance, will be able to perform a cleaning function or other surface treatment function according to some predetermined strategy and at the same time avoid colliding with different obstacles and limitations such as walls or the like.

[0003] For example, many robotic vacuum cleaners of today start their cleaning task by tracking the walls of the. room in question and then continue to move in a random pattern until they estimate that the whole room, apart from possible obstacles, has been covered. Although this strategy works quite well in practice, it is evident that such a vacuum cleaner may go over the same area several times, while other areas remain uncleaned even after a long period of operation.

[0004] The issue of providing a more efficient strategy for navigating an autonomous surface treatment apparatus over a given area has been addressed in the prior art:

[0005] U.S. Pat. No. 4,674,048 relates to a guidance system for a mobile robot. The system is based on a grid-like map in which columns and rows are defined. The system studies and stores a travelling range, and guides the robot through a travel pattern within the specified range by sequentially moving the robot back and forth along one of the columns and rows of the map in the specified range, while sequentially shifting the robot to one of the subsequent columns and rows. In response to detection of an obstruction the robot shifts to one of the next column and the next row by turning the robot at a position where the obstruction is sensed. In this way, the robot is allowed to travel within the range without leaving any region untravelled and tag notice of possible obstructions which alters its course.

[0006] U.S. Pat. 5,440,216 relates to a robot cleaner, which initially follows the walls of a room to memorize the structure and size of the room and then compares the memorized structure with previously stored data to select the program most similar to the memorized structure. The cleaner then performs the cleaning operation according to the selected program, moving in parallel lines in accordance with the room structure.

[0007] The International Patent Application WO 99/59402 discloses a robot provided with a sensor unit and a navigation system. The sensor unit senses the proximity to boundary markers located along the outer edge of an area to be covered. The navigation system navigates the robot in generally straight, parallel lines and turns the robot when the robot encounters a boundary marker.

[0008] The International Patent Application WO 00/38025 discloses a floor cleaning device arranged so that it first completes a traverse around the edge of a room and then moves inwards and completes a second traverse of the room, and continues to move inwards after each traverse until the room, apart from areas occupied by obstacles, has been cleaned, thus generally defining an inwardly spiral pattern of movement.

[0009] Although the above strategies can be used with quite satisfactory results, the efficiency tends to decrease significantly in many practical cases when there are several obstacles of various sizes and forms that constantly break the nominal path of the autonomous apparatus. In particular, the strategy of moving the autonomous apparatus back and forth in generally straight, parallel lines has turned out to be sensitive to environments with elongated obstacles, especially when some of the elongated obstacles are arranged perpendicularly to the movement of the apparatus.

[0010] Consequently, there is still a general need for an efficient strategy for navigating an autonomous surface treatment apparatus over a given field of operation.

RELATED ART

[0011] U.S. Pat. No. 5,006,988 relates to an obstacle-avoiding navigation system for guiding an autonomous device through a field of operation without colliding with obstacles. The system utilizes a memory for storage of data defining an array of grid cells which correspond to respective subfields in the field of operation. Each grid cell contains a value that is indicative of the probability that an obstacle is present in the associated subfield. The subfields are scanned for determining the presence of an obstacle therein and the values in the grid cells are incremented individually in response to each scan of the subfields. Furthermore, a region of operation in the vicinity of the vehicle is defined, and a plurality of vectorial values are computed in response to the location of the grid cells within the defined region of operation with respect to the location of the vehicle as well as the values in the relevant grid cells. Finally, a resultant guide vector that can be used in guiding the vehicle through the field of operation so as to avoid collisions is produced based on the vectorial values.

[0012] U.S. Pat. No. 5,684,695 and the International Patent Application WO 98/00767 concern various improvements relating to the so-called occupancy levels in the cells of a cellularly structured map of the field of operation for providing efficient obstacle-avoiding navigation.

[0013] The International Patent Application WO 00/10062 discloses a method and device for determining a path around a defined reference position. The path is determined by iteratively determining an arc-shaped path around the reference position at a defined distance therefrom, and verifying the absence of obstacles along the arc-shaped path. As long as no obstacles are detected, the path is extended. If an obstacle is however detected, the distance is increased by a given value and the process is repeated using the increased distance.

SUMMARY OF THE INVENTION

[0014] It is a general object of the present invention to provide an energy-efficient strategy for navigating an autonomous surface treatment apparatus over a predetermined field of operation.

[0015] It is another object of the invention to provide a mechanism for performing a structured search for untreated areas within a field of operation. In this respect, it is desirable to perform the search in a computationally efficient manner.

[0016] These and other objects are met by the invention as defined by the accompanying patent claims.

[0017] The invention represents a new approach for navigating an autonomous surface treatment apparatus over a predetermined field of operation. The general idea according to the invention is to divide the field of operation into cells, each of which is being indicated as treated, untreated or occupied by an obstacle, and to determine a navigation route, to an obstacle-free and untreated cell, that requires the smallest amount of energy for moving the autonomous apparatus thereto according to a predetermined energy cost fimction. Subsequently, the autonomous apparatus is navigated from the current cell to the obstacle-free and untreated cell according to the determined navigation route and the indication of that cell is changed from untreated to treated once the cell has been treated. Preferably, the procedure is repeated until the complete field of operation has been treated. In this way, the energy-consumption for moving over a given field of operation can be substantially reduced by using a proper energy cost function.

[0018] Preferably, the energy cost function depends both on the distance from the current cell to an untreated cell as well as the total change of direction required for moving thereto, a larger change of direction and a larger distance being given a larger cost. Consequently, consideration is not only taken to the total distance of travel required to reach an untreated cell, but also to the number of rotations of the autonomous apparatus. It is important to reduce the number of rotations to a ninimum since the useful work of the autonomous surface treatment apparatus is accomplished when the apparatus is moving over the surface performing for instance a cleaning task, and not when the apparatus rotates on the spot.

[0019] Preferably, the task of determining a navigation route to an untreated cell is based on an efficient structured search procedure of low computational complexity. Advantageously, the search procedure involves allocation of costs to a number of cells in the surroundings of the current cell based on distance as well as required change of direction for moving to the respective cell. In general, the cells are checked in cost-order staring from the cell having the lowest cost until a cell that is indicated as untreated is found. The route to the found cell is extracted as a lowest- cost navigation route to an untreated cell, and the autonomous surface treatment apparatus is navigated from the current cell to the untreated cell according to the extracted navigation route. Each cost-allocated cell is conveniently assigned a direction indicator to enable extraction of the lowest-cost route by means of back tracing. Once the untreated cell has been treated by the autonomous apparatus, the indication of that cell is updated as treated.

[0020] Checking the cells in cost-order ensures that a lowest-cost route is found, and keeps the computational complexity of the search procedure at a low level. Using procedures of low computational complexity is of outmost importance in order to relax the requirements on memory and processor capacity.

[0021] The invention offers the following advantages:

[0022] Energy-efficient navigation over a given field of operation;

[0023] Minimized number of rotations;

[0024] Structured and efficient search for untreated areas;

[0025] Low computational complexity, leading to relaxed requirements on memory and processor capacity.

[0026] Other advantages offered by the present invention will be appreciated upon reading of the below description of the embodiments of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

[0027] The invention, together with further objects and advantages thereof, will be best understood by reference to the following description taken together with the accompanying drawings, in which:

[0028]FIG. 1 demonstrates a top view of an autonomous device in form of an embodiment showing a vacuum-cleaning robot equipped according to the present invention;

[0029]FIG. 2 shows a side view of the autonomous device according to FIG. 1;

[0030]FIG. 3 shows a front view of the autonomous device illustrating the transmitter member at the front and two rows of receiving sensors;

[0031]FIG. 4 is a hardware block diagram of the device according to FIGS. 1, 2 and 3;

[0032]FIG. 5 is a schematic drawing of a predetermined field of operation and a corresponding cell-based map;

[0033] FIGS. 6A-D are schematic drawings of a search map at different stages during the search for an uncleaned cell according to a basic embodiment of the invention;

[0034]FIG. 7 is a schematic flow diagram of a search procedure according to an illustrative embodiment of the invention;

[0035]FIG. 8 is a schematic drawing of a predetermined field of operation and a corresponding cell-based map;

[0036] FIGS. 9A-D are schematic drawings of a search map at different stages during the search for an uncleaned cell according to a preferred embodiment of the invention;

[0037]FIG. 10 is a schematic drawing of a given cleaning area;

[0038] FIGS. 11A-P are schematic drawings of a cell-based map during navigation of a vacuum-cleaner over a given cleaning area, together with corresponding search maps; and

[0039]FIG. 12 is a schematic drawing showing an example of how the autonomous vacuum cleaner may navigate to perform cleaning of an entire room.

DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION

[0040] Throughout the drawings, the same reference characters will be used for corresponding or similar elements.

[0041] In the following, the invention will be described with reference to a particular example of an autonomous surface treatment apparatus, namely an autonomous vacuum-cleaning device. It should however be understood that the invention is not limited thereto, and that the invention is applicable to various other autonomous apparatuses for surface treatment, such as autonomous devices for sweeping, brushing and floor polising as well as robotic lawnmowers.

General Features

[0042]FIG. 1 illustrates in a three dimensional top view an illustrative embodiment of an autonomous vacuum-cleaning device 1, which by itself will move on a floor and vacuum-clean a room. In the front portion there is arranged an ultrasonic system. The ultrasonic system comprises a strip-shaped ultrasonic transmitter 10 having a length covering of the order 180° of the front perimeter of the device as illustrated in FIGS. 2 and 3. As seen in FIG. 2, the transmitter 10 with stripshaped elements is mounted above a lower first row of microphone units 12. Above the strip-shaped transmitter elements a second row of microphone units 13 is localized. The ultrasound echo sensor microphones 12 and 13 together with the transmitter 10 form an ultrasonic sonar system for the navigation of the device. In the illustrative embodiment the transmitter transducer is countersinked in a forward directed, movable bumper unit 16. The bumper 16 controls a left and a right bumper touch sensor, either one being actuated if the bumper makes contact with an obstacle. In FIGS. 2 and 3 it will be seen that the device has two diametrically positioned wheels 17, 18. The wheels 17, 18 are each independently driven by a separate motor preferably equipped with a gearbox. The driven wheels 17 and 18 will enable the device to also rotate around its own symmetry center or around either wheel 17, 18. On the axis from each motor driving the respective wheel 17 and 18 a respective quadrature sensor is mounted. Quadrature signals from the sensors are connected to a built-in microprocessor controlling the device. The signals from these sensors, or equivalent devices, will be used for obtaining a dead count for estimating the distance of travel. Optional wheels support the back of the device. The device is generally balanced with a slightly larger weight on the rear half of the device, carrying for instance the batteries, such that it will always move with all wheels in contact with the floor. Due to this balancing the device may easily climb the edges of floor carpets and the like.

[0043] Further, the autonomous device may advantageously be equipped with Hall effect sensors, preferably one in front of each wheel, for detection of a magnetic fence and/or one or more magnetic strips in connection with the automatic charging station used for charging the device. The magnetic fence can be used to restrict the movement of the device. For example, the fence can be placed so that the device does not fall down the stairs. It can also be placed so as to separate rooms without having to close the door. In this way, it is possible clean one room at a time, which has turned out to be an effective way of cleaning.

[0044]FIG. 4 is a hardware block diagram of the device according to FIGS. 1, 2 and 3. The hardware basically consists of a processor board, which is configured to drive the two wheel motors, the ultrasonic trnsmitter and the corresponding microphone based receiver system, the fan and brush motors as well as other components of the autonomous vacuum-cleaning device. The processor board is essentially built around a data processor such as the MC68332 from Motorola Inc.

[0045] The wheel motors are separately controlled by pulse-width modulated signals of 5 kHz generated by two more channels from the Time Processor Unit in the main processor. In order to detect how much each wheel has rotated, the quadrature encoders mounted in connection with the wheel motors generate quadrature signals that are connected to Time Processor Unit (TPU) inputs of the MC68332. The quadrature signals are processed by the processor to provide position information by keeping track of the distance of travel and preferably also the rotation of the autonomous device during movement. The processor (running in QDEC mode) gives such position infonnation with an accuracy of 2642 slots per revolution controls.

[0046] The sonar localization sensing system formed by the transmitter and receiver system is utilized by the autonomous vacuum-cleaning device for obstacle detection purposes, such as detection of obstacles in the path of the moving device, pinpointing the exact location of the nearest obstacle. The processor controls the transmitter and receives input data from the receiver system for subsequent evaluation.

[0047] The processor also controls the motor for the rotating brush as well as the motor for the fan, wherein the fan generates the necessary vacuum for the general function of the vacuum cleaner. Air from the fan motor is additionally in a known manner utilized for cooling purposes and the air is exhausted at a gilled outlet at the top of the device.

[0048] The processor is controlled by software stored in a number of different types of digital memories for example of type FPROM, RAM or EEPROM, which are all well known to a person familiar to computer techniques. Additionally the processor has its own clocking system CLK also known from the prior art.

[0049] The system as illustrated in FIG. 4 further comprises a number of switches, two bumper switches and two tilt switches. The two bumper switches L-Bumper, R-Bumper are connected to two TPU input pins working in discrete I/O mode, and are used as a complement to the sonar system for detection of collisions with obstacles. The tilt switches are used to detect whether the device is levelled with the floor or tilted.

[0050] The system also includes a number of switches for input commands from a control panel. For example, this enables the user to turn the vacuum cleaner on and off, and to select one of a number of cleaning programs.

[0051] Signals representative of the magnetic fields that are sensed by the Hall sensors are fed to the processor via the A/D-converter and processed thereby to allow detection of the automatic charging station and the magnetic fence. The offset voltages of the analogue Hall sensors may vary with time, temperature and individual sensors, and therefore a zero field reference point is constantly recalculated and adjusted with a slow averaging filter based on pulse width modulated signals from the processor.

[0052] In order to detect malfunctions, various signals are continuously measured and fed to the processor for evaluation, either directly via the A/D-converter or first through the multiplexer MUX and then via the A/D-converter.

Cost-Based Navigation According to the Invention

[0053] The invention is preferably, although not necessarily, implemented as software in the form of computer program modules, functions or equivalent stored in appropriate memories. The software may be written in any type of computer language, such as C, C++, Java or even specialized proprietary languages. In practice, the steps, functions and actions to be described are mapped into a computer program, which when being executed by the processor performs the cost-based navigation of the autonomous vacuum-cleaner.

[0054] The autonomous vacuum cleaner basically operates in the following manner. In order to traverse a given area to be cleaned, the wheels of the vacuum-cleaner are driven by the wheel motors under the control of the processor, while the fan and brush motors are operated to perform the cleaning task. The movement of the vacuum cleaner is generally determined by control software executed by the processor in response to calculated position information and information on detection of obstacles from the sonar system. Preferably, the vacuum-cleaner starts by making a wall-tracking round, allowing the processor to produce a general map of the cleaning area as the walls or similar limitations are detected during the tracking round.

[0055] According to a basic embodiment of the invention, the control software then divides the entire area covered by the map or a predetermined part thereof into cells, and continuously keeps track of which cells that are treated, untreated and occupied by obstacles as the vacuum-cleaner is navigated over the given field of operation. Standing in a given cell, the vacuum-cleaner determines a navigation route to an obstacle-free and untreated cell, and moves to that cell for performing cleaning. Once the new cell has been cleaned, the cell is indicated as treated, and the cleaner s normally determines a new navigation route to another obstacle-free and untreated cell. By defining an energy cost function, it is possible to determine a navigation route, to an untreated cell, that requires the smallest amount of energy for moving the vacuum-cleaner to the cell.

[0056] It has been recognized that the energy-conmption of an autonomous surface treatment apparatus during treatment of a given field of operation is generally not only dependent on the total distance of travel, but also on the number of required rotations of the apparatus. Therefore, a suitable energy cost function is based both on the distance from the current cell to an obstacle-free and untreated cell as well as the total change of direction required for moving thereto and defined so that a larger change of direction and a larger distance are given a larger cost.

[0057] Cost-based navigation according to a first embodiment of the invention will now be described in relation to a particular example by referring to FIGS. 5, 6A-D and 7.

[0058]FIG. 5 is a schematic drawing of a predetermined field of operation and a corresponding cell-based map. As can be seen in the left side drawing, the vacuum-cleaner is located in an initial position INIT with an obstacle (in black) on the right side and uncleaned areas (in diagonal lines) above the obstacle and in the upper left corner. In the map, each cell is being indicated as treated, untreated or occupied by an obstacle. In this example, treated cells are indicated by the integer 200, while untreated cells are indicated by the integer 201. Obstacles of any kind are indicated by the integer 255. It is assumed that the obstacle has been detected by the sonar system of the vacuum-cleaner, and that there are two cells, one above the obstacle and one in the upper left corner of the field of operation, that have not been treated by the vacuum-cleaner.

[0059] The task is to find the most cost-effective navigation route to an untreated cell. This is preferably accomplished by a structured search procedure, which involves allocation of costs to a number of cells in the surroundings of the current cell based on distance as well as required change of direction for moving to the respective cell. For example, if only the four cardinal directions (forward, 90° to the left, 90° to the right and backward) are considered, it may be assumed that the cost to drive forward 1 cell is 1 unit, and the cost to turn 90° is 1 unit. The corresponding energy cost function E is defined by accumulating the costs of all forward cell-to-cell movements and all 90° rotations required to reach a given cell: ${E = {{\sum\limits_{i}C_{i}^{forward}} + {\sum\limits_{j}C_{j}^{rotation}}}},$

[0060] where C^(forward) is the cost of driving forward 1 cell and C^(rotation) is the cost of turning 90°. Of course, these assumptions are not completely accurate, but give a rather good estimate of the total cost to reach a specific location. With the above assumptions, the search algorithm may be based on the question whether there is an untreated cell with cost N, where N starts at 1 and is incremented by 1 each iteration.

[0061] In this particular implementation, the procedure starts by building a list of cell(s) having cost N around the current cell (step 101 in FIG. 7). When a cell is added to a list, the corresponding cost is preferably stored in a special search map together with a direction indicator that gives the direction from which the search algorithm came to reach the cell at this cost.

[0062] Initially, the threshold N is set to 1. Accordingly, the first list contains the coordinates for cells with cost 1. This list contains a single cell, since the only operation that has the maximum cost of 1 is driving forward 1 cell. FIG. 6A shows the search map at this stage. The cell with cost 1 is examined with respect to whether or not the cell is indicated as untreated (step 102 in FIG. 7). Prom the basic map of FIG. 5 it can be seen that the cell is indicated as treated. Consequently, N is incremented by 1 (step 103 in FIG. 7) and the procedure continues by building a list with cells of cost 2 (step 101). FIG. 6B shows the search map at this stage. The cells in the list are examined to see whether any cell of cost 2 is indicated as untreated (step 102). The basic search map of FIG. 5 indicates that no cell in the list of cost 2 is marked as untreated. This means that N is incremented once again (step 103), and that a list with cells of cost 3 is built (step 101). FIG. 6C shows the search map at this stage. Please, note that the presence of the obstacle prevents the allocation of cost 3 to the cell located two cells to the right of the current cell. The cells in the list of cost 3 are then examined (step 102). Since no cell in the list of cost 3 is indicated as untreated in the basic map of FIG. 5, N is incremented once again (step 103). This time, a list of cells with cost 4 is built (step 101) and examined (step 102). FIG. 6D shows the search map at this stage. In this case, an untreated cell is found above the obstacle, and the corresponding lowest-cost route is extracted (step 104 in FIG. 7) by using the direction indicators.

[0063] Thus, the most cost-effective way according to the above energy cost assumptions is UP, RIGHT, RIGHT. Using cells with a resolution of 30 cm (corresponding to the effective size of the vacuum-cleaner), the route can be translated into drive vectors: drive forward 30 cm and stop, make a right 90° turn and then drive forward 60 cm.

[0064] The size of the cells can of course be modified, and a resolution of for instance 10 cm or 20 cm may also be appropriate if the effective size of the vacuum cleaner is 30 cm.

[0065] In the following, a more elaborated implementation of the overall search procedure will be described with reference to FIGS. 8 and 9A-D.

[0066] It is assumed that the autonomous vacuum-cleaner is located in the same field of operation as described in connection with FIG. 5, and therefore FIG. 8 is identical to Fig. S. In the same way as before, the task is to find the most cost-effective navigation route to an untreated cell, assuming that the cost to drive forward 1 cell is 1 unit, and the cost to turn 90° is 1 unit. The search algorithm is based on the question whether there is an untreated cell with cost N, where N starts at 1 and counts upwards.

[0067] In the currendy most preferred implementation, the search procedure is initialized by building three lists around the current cell. The first list contains the coordinates of the cell with cost 1, reached by driving forward 1 step. In the same way, lists with cost 2 and cost 3 are built, but limited to cells adjacent the starting cell. FIG. 9A illustrates the search map after initiaization.

[0068] The lists are processed one by one in cost-order, starting with the list having the lowest cost. As a list is being processed, the cells are examined one by one to see whether any cell is indicated as untreated. However, during the processing of a given list, new cells are also added to lists of higher costs by considering, for each cell in the list under process, the adjacent cells in the directions forward, left and right.

[0069] For example, starting with the first list, the cell with cost 1 is examined with respect to whether or not the cell is indicated as untreated. From the basic map of FIG. 8 it can be seen that the cell is indicated as treated. At the same time, the lists of cost 2 and 3 are updated by considering the cells around the cell with cost 1. From the cell with cost 1, it is possible to continue forward, or to turn to either side. As mentioned above, the cost of driving forward is 1 unit, while the cost of first tuning 90° and then driving forward is 2 units. Accumulating the costs from the starting cell means that the cell in the forward direction of the cell with cost 1 is allocated a total cost of 2 and added to the corresponding list, while the cells to the left and right of the cell with cost 1 are allocated the total cost of 3 and added to the list of cost 3. The search map after processing the list with cost 1 is illustrated in FIG. 9B. Once, the list of cost 1 has been processed and the lists of costs 2 and 3 have been updated, the list of cost 1 is discarded and the procedure continues with the next list.

[0070] In the same way as before, the cells within the list of cost 2 are examined one by one to see whether any cell is indicated as untreated. As can be seen from the basic map of FIG. 8, all cells of cost 2 are indicated as treated. During the processing of the list of cost 2, cells are also added to the list of cost 3 and a new list with cells of cost 4 is created. The search map after processing of the list of cost 2 is illustrated in FIG. 9C.

[0071] The procedure then continues with the list of cost 3, processing the cells one by one. With reference to the basic map of FIG. 8, it can be seen that all cells of cost 3 are indicated as treated. Once the list of cost 4 has been updated and the new list of cost 5 has been created, the list of cost 3 is discarded and the procedure continues with the next list of cost 4. When the cell of cost 4 above the obstacle is examined, an untreated cell is found and the search is completed (FIG. 9D). Finally, the route is extracted as a lowest-cost route to an untreated and obstacle-free cell.

[0072] Although it has been assumed above that the cost to drive forward 1 cell is 1 unit, and the cost to turn 90° is 1 unit, it is apparent that these assumptions can be modified in various ways. For example, the relationship between the cost of driving forward 1 cell and the cost of turning 90° can be changed. It is also possible to assign costs for turning in various other directions as well. It should also be understood that the costs do not have to be in integer values, and that any real values can be assigned to represent the costs of driving forward and tuning in different directions.

[0073] It is apparent that the cost-based navigation of the invention can be used for cleaning entire rooms or similar areas in an energy-efficient way. However, it should be understood that the invention is also suitable for so-called “spot cleaning”, performing effective cleaning of a smaller area within a room. It is also possible to combine the lowest-cost navigation of the invention with any of the prior art techniques, for example by staring with a prior art pattern of movement and continuing with the lowest-cost navigation of the invention for areas and spots that have been left over.

[0074] For a better understanding of the invention, an illustrative example of how the autonomous vacuum cleaner navigates to perform spot cleaning of a given cleaning area will now be described with reference to FIGS. 10 and 11A-P.

[0075]FIG. 10 is a schematic drawing of a given cleaning area. The vacuum cleaner is located in the middle of the area, with an obstacle (black) some distance straight ahead. Inidally, the entire area is uncleaned (diagonal lines).

[0076] The control software produces and continuously updates a cell-based map of the area to be cleaned, as can be seen on the right hand side of FIGS. 11A-P. Each of the cells is indicated as cleaned, uncleaned or occupied by an obstacle. Cleaned cells are usually indicated by 200, while uncleaned cells are indicated by 201 and cells occupied by obstacles of any kind are indicated by 255. In the following however, cleaned cells will simply be indicated by the trace of movement of the vacuum cleaner. The control software also produces a number of search maps, as illustrated on the left-hand side of FIGS. 11A-P.

[0077] As can be seen in FIG. 11A, the vacuum cleaner is initially located in the middle of the cell-based map, surrounded by uncleaned cells. It is possible to drive forward 1 step to fmd an uncleaned cell at cost 1, and the cleaner therefore drives forward 1 step. From the new position, it is not possible to continue to drive forward due to the obstacle, as can be seen in FIG. 1IB. Therefore, the cleaner has to turn to the left or the right to reach the next uncleaned cell (at cost 2). In this example, the default choice will always be a left turn if it is possible to turn both to the left and to the right. Therefore, the cleaner turns to the left and drives forward 1 step (FIG. 11C). The vacuum cleaner then continues to drive forward (FIG. 11D), and turns to the left (FIG. 11E) when it reaches the left limitation of the predetermined cleaning area. The cleaner now continues to drive along the outer limitation (FIG. 11F-G) until it reaches the lower limitation of the cleaning area. The vacuum cleaner then turns left and follows the lower and right limitations of the cleaning area (not shown) until it reaches the upper limitation (FIG. 11H). At this point, the only way out is to turn 180°. This gives a cost of 2 units. Driving forward 1 step gives an additional cost of 1 unit, a total of 3 units. However, this cell has already been cleaned, and so has the cell of cost 4. The cell of cost 5 is indicated as uncleaned and therefore the vacuum cleaner navigates to that cell (FIG. 11I). Now, the cleaner turns to the left (FIG. 11J), avoiding the obstacle to the right and the forward cell that has already been cleaned. From that position, the cleaner finds an uncleaned cell in the forward direction and consequently drives forward 1 step (FIG. 11K). Now, the cleaner has to turn once again to reach a new uncleaned cell (FIG. 11L). The cleaner continues in the forward direction (FIG. 11M), and then turns to the right (FIG. 11N). From this position, the cleaner searches for a new uncleaned cell and by investigating the cells of cost 2 in the search map, the cleaner finds that the lowest-cost route to the next uncleaned cell is to drive forwards 2 steps (FIG. 11O). The remaining cell to be cleaned is finally reached by turning to the left and driving forwards 1 step (FIG. 11P).

[0078] Finally, an illustrative example of how the autonomous vacuum cleaner may navigate to perform cleaning of an entire room will now be outlined with reference to FIG. 12. In this particular example the room has two elongated obstacles, for example two bookshelves. It is furthermore assumed that the vacuum-cleaner is initially located at the charging station, and then stats by making a wall-tracling round, with (or without) the fan and brush motors operating. Once the vacuum-leaner returns to the charging station, the cleaner knows that the wall-tracking round has been completed. Now, the vacuum cleaner continues by using the lowest-cost navigation. according to the invention and traverses the remai ng uncleaned areas of the room except for the obstacles.

[0079] The embodiments described above are merely given as examples, and it should be understood that the present invention is not limited thereto. Further modifications, changes and improvements which retain the basic underlying principles disclosed and claimed herein are within the scope and spirit of the invention. 

1. A method of navigating an autonomous surface treatment apparatus over a predetermined field of operation, comprising the steps of: dividing said predetermined field of operation into cells, each of which being adapted to be indicated as treated, untreated or occupied by an obstacle; determining, for a current cell in which the autonomous apparatus is located, a navigation route to an obstacle-free and untreated cell that requires the smallest amount of energy for moving the autonomous surface treatment apparatus thereto according to a predetermined energy cost function; and navigating the autonomous surface treatment. apparatus from the current cell to the obstacle-free and untreated cell according to the determined navigation route and updating the indication of that cell as treated, characterized by the steps of: defining a search algorithm based on the question whether there is an untreated cell with cost N, where N starts at 1 and counts upwards to create a number of cost levels based on specific movements of the autonomous surface treatment apparatus required for it to arrive at said untreated cell; building three lists around the currrent cell each list containing the coordinates of cells with the lowest cost and of the coordinates of cells of the two consecutive higher cost levels, but limited to cells adjacent to the current cell; processing the lists, one by one in cost-order, starting with the list having the lowest cost, wherein as a list is processed the cells are examined one by one to identify cells indicated as untreated; during processing of a list, adding cells to the two consecutive lists of higher cost by considering, for each cell under process, adjacent cells in the directions forward, left and right; after processing of a list and updating the two consecutive lists of higher cost, discarding the list under process and processing the list next to follow; repeating the search process until an untreated and unoccupied cell has been found;
 2. The method according to claim 1, characterized in that said energy cost finction depends both on the distance from the current cell to an obstacle-free and untreated cell as well as the total change of direction required for moving thereto, a larger change of direction and a larger distance being given a larger cost.
 3. The method according to claim 1 or 2, characterized by restricting said autonomous apparatus to move from cell to cell in a limited number of directions.
 4. The method according to claim 3, characterized in that the cost for a route that requires more than one cell-to-cell movement is determined by accumulating the cost for each change of direction along the route and taking the total distance into account.
 5. The method according to any of the preceding claims, characterized in that the step of determining a navigation route that requires the smallest amount of energy according to a predetermined energy cost function includes the steps of: allocating to each of a number of cells in the surroundings of the current cell a cost based on the distance to that cell as well as the total change of direction required for moving thereto; checking, in cost-order starting from the cell having the lowest cost, whether any of the cost-allocated cells is indicated as untreated until an untreated cell is found; and extracting the route to the found cell as a lowest-cost route that is used as the navigation route.
 6. The method according to claim 5, characterized by allocating costs to cells in the surroundings of the current cell that fall within a given cost interval and checking the cost-allocated cells for an untreated cell in cost-order, and if no such untreated cell is found among these cells, gradually increasing the cost interval within which cells are allocated costs and continuing to check cells in cost-order until an untreated cell is found.
 7. The method according to claim 5 or 6, characterized by assigning to each cost-allocated cell a direction indicator to enable extraction of the lowest-cost route by means of back tracing.
 8. The method according to any of the preceding claims, characterized in that the size ofthe cells is approximately equal to or smaller than the size of the autonomous apparatus.
 9. The method according to any of the preceding claims, characterized in that said determining step and said navigating step are repeated until the entire field of operation has been treated.
 10. The method according to any of the preceding claims, characterized in that cells are being indicated as occupied by an obstacle based on information from an obstacle detection system of the autonomous apparatus.
 11. An autonomous surface treatment apparatus having power operated means for moving the apparatus, a sensing system for detection of obstacles and a navigation system for navigating the apparatus over a predetermined field of operation, said navigation system comprising: means for logically dividing said predetermined field of operation into cells, each of which is being adapted to be indicated as treated, untreated or occupied by an obstacle; means for determining, for a current cell in which the autonomous apparatus is located, a navigation route to an obstacle-free and untreated cell that requires the smallest amount of energy for moving the autonomous surface treatment apparatus thereto according to a predetermined energy cost function; and means for navigating the autonomous surface treatment apparatus from the current cell to the obstacle-free and untreated cell according to the determined navigation route and updating the indication of that cell as treated, characterized by computing means adapted to perform the following operations: defining a search algorithm based on the question whether there is an untreated cell with cost N, where N starts at 1 and counts upwards, to create a number of cost levels based on specific movements of the autonomous surface treatment apparatus required for it to arrive at said untreated cell; building three lists around the current cell each list containing the coordinates of cells with the lowest cost and of the coordinates of cells of the two consecutive higher cost levels, but limited to cells adjacent to the current cell; processing the lists, one by one in cost-order, starting with the list having the lowest cost, wherein as a list is processed the cells are examined one by one to identify cells indicated as untreated; during processing of a list, adding cells to the two consecutive lists of higher cost by considering, for each cell under process, adjacent cells in the directions forward, left and right; after processing of a list and updating the two consecutive lists of higher cost, discarding the list under process until an untreated and unocccupied cell has been found.
 12. The apparatus according to claim 11, characterized in that said energy cost finction depends both on the distance from the current cell to an obstacle-free and untreated cell as well as the total change of direction required for moving thereto, a larger change of direction and a larger distance being given a larger cost.
 13. The apparatus according to claim 11 or 12, characterized in that said autonomous apparatus is restricted to move from cell to cell in a limited number of directions.
 14. The apparatus according to claim 13, characterized in that the cost for a route that requires more than one cell-to-cell movement is determined by accumulating the cost for each change of direction along the route and taking the total distance into account.
 15. The apparatus according to any of the claims 11-14, characterized in that said means for determining a navigation route that requires the smallest amount of energy according to a predetermined energy cost function includes: means for allocating to each of a number of cells in the surroundings of the current cell a cost based on the distance to that cell as well as the total change of direction required for moving thereto; means for checking, in cost-order starting from the cell having the lowest cost, whether any of the cost-allocated cells is indicated as untreated until such an untreated cell is found; and means for extracting the route to the found cell as a lowest-cost navigation route to an untreated cell.
 16. The apparatus according to claim 15, characterized in that said allocating means and said checking means interwork in such a manner that costs are allocated to cells in the surroundings of the current cell that fall within a given cost interval and that these cost-allocated cells are checked in cost-order to find an untreated cell, and that if no such untreated cell is found among these cells the cost interval within which cells are allocated costs is gradually increased and the checking of cells is continued in cost-order until an untreated cell is found.
 17. The apparatus according to claim 15 or 16, characterized in that said navigation system further comprises means for assigning to each cost-allocated cell a direction indicator to enable extraction of the lowest-cost route by means of back tracking.
 18. The apparatus according to any of the claims 11-17, characterized in that the size of the cells is approximately equal to or smaller than the size of the autonomous apparatus.
 19. The apparatus according to any of the claims 11-18, characterized in that determining means is configured for determining a sequence of navigation routes according to which the navigation means operates until the entire field of operation has been treated.
 20. The apparatus according to any of the claims 11-19, characterized in that said autonomous surface treatment apparatus is operable for performing floor treatment such as vacuum cleaning, sweeping, brushing or polishing within said field of operation.
 21. A computer program for navigating an autonomous surface treatment apparatus over a predetermined field of operation, when the program is executed by a computer arranged in connection with said autonomous apparatus, said computer program comprising: program means for logically dividing said predetermined field of operation into cells, each of which adapted to be indicated as treated, untreated or occupied by an obstacle; program means for performing, for a current cell in which the autonomous apparatus is located, a structured search for an obstacle-free and untreated cell, wherein said program means for performing a structured search comprises: program means for allocating to each of a number of cells in the surroundings of the current cell a cost based on the distance to that cell as well as the total change of direction required for moving thereto; program means for checking, in cost-order starting from the cell having the lowest cost, whether any of the cost-allocated cells is indicated as untreated until such an untreated cell is found; and program means for extracting the route to a found cell as a lowest-cost navigation route to an untreated cell; and program means for navigating the autonomous surface treatment apparatus from the current cell to an obstacle-free and untreated cell according to the extracted lowest-cost navigation route and updating the indication of that cell as treated, characterized in that said program means for performing a structured search further comprises: program means for building three lists around the current cell, a first list containing the coordinates of cells with the lowest cost and the two additional lists containing the coordinates for cells of the two following cost levels, respectively; program means for processing the lists, one by one in cost-order, starting with the list having the lowest cost, wherein as a list is processed the cells are examined one by oneto identify cells indicated as untreated; said program means for processing the lists in doing so adding cells to the two consecutive lists of higher cost by considering, for each cell under process, adjacent cells in the direction forward, left and right; said program means for processing the lists, after completion of a list and updating the two consecutive lists of higher cost, discarding the list thus completed and processing the list next to follow;
 22. The computer program according to claim 21, characterized in that said allocating program means and said checking program means interwork in such a manner that costs are allocated to cells in the surroundings of the current cell that fall within a given cost interval and that these cost-allocated cells are checked in cost-order to find an untreated cell and that if no such untreated cell is found among these cells the cost interval within which cells are allocated costs is gradually increased and the checking of cells is continued in cost-order until an untreated cell is found.
 23. The computer program according to claim 21 or 22, characterized by program means for assigning to each cost-allocated cell a direction indicator to enable extraction of the lowest-cost route by means of back tracing. 